home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / usr / include / gnt / gntentry.h < prev    next >
Encoding:
C/C++ Source or Header  |  2007-05-04  |  3.2 KB  |  107 lines

  1. #ifndef GNT_ENTRY_H
  2. #define GNT_ENTRY_H
  3.  
  4. #include "gntwidget.h"
  5. #include "gnt.h"
  6. #include "gntcolors.h"
  7. #include "gntkeys.h"
  8.  
  9. #define GNT_TYPE_ENTRY                (gnt_entry_get_gtype())
  10. #define GNT_ENTRY(obj)                (G_TYPE_CHECK_INSTANCE_CAST((obj), GNT_TYPE_ENTRY, GntEntry))
  11. #define GNT_ENTRY_CLASS(klass)        (G_TYPE_CHECK_CLASS_CAST((klass), GNT_TYPE_ENTRY, GntEntryClass))
  12. #define GNT_IS_ENTRY(obj)            (G_TYPE_CHECK_INSTANCE_TYPE((obj), GNT_TYPE_ENTRY))
  13. #define GNT_IS_ENTRY_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE((klass), GNT_TYPE_ENTRY))
  14. #define GNT_ENTRY_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS((obj), GNT_TYPE_ENTRY, GntEntryClass))
  15.  
  16. #define GNT_ENTRY_FLAGS(obj)                (GNT_ENTRY(obj)->priv.flags)
  17. #define GNT_ENTRY_SET_FLAGS(obj, flags)        (GNT_ENTRY_FLAGS(obj) |= flags)
  18. #define GNT_ENTRY_UNSET_FLAGS(obj, flags)    (GNT_ENTRY_FLAGS(obj) &= ~(flags))
  19.  
  20. #define    ENTRY_CHAR        '_'            /* The character to use to fill in the blank places */
  21.  
  22. typedef struct _GntEntry            GntEntry;
  23. typedef struct _GntEntryPriv        GntEntryPriv;
  24. typedef struct _GntEntryClass    GntEntryClass;
  25.  
  26. typedef enum
  27. {
  28.     GNT_ENTRY_FLAG_ALPHA    = 1 << 0,  /* Only alpha */
  29.     GNT_ENTRY_FLAG_INT      = 1 << 1,  /* Only integer */
  30.     GNT_ENTRY_FLAG_NO_SPACE = 1 << 2,  /* No blank space is allowed */
  31.     GNT_ENTRY_FLAG_NO_PUNCT = 1 << 3,  /* No punctuations */
  32.     GNT_ENTRY_FLAG_MASK     = 1 << 4,  /* Mask the inputs */
  33. } GntEntryFlag;
  34.  
  35. #define GNT_ENTRY_FLAG_ALL    (GNT_ENTRY_FLAG_ALPHA | GNT_ENTRY_FLAG_INT)
  36.  
  37. struct _GntEntry
  38. {
  39.     GntWidget parent;
  40.  
  41.     GntEntryFlag flag;
  42.  
  43.     char *start;
  44.     char *end;
  45.     char *scroll;   /* Current scrolling position */
  46.     char *cursor;   /* Cursor location */
  47.                     /* 0 <= cursor - scroll < widget-width */
  48.     
  49.     size_t buffer;  /* Size of the buffer */
  50.     
  51.     int max;        /* 0 means infinite */
  52.     gboolean masked;
  53.  
  54.     GList *history; /* History of the strings. User can use this by pressing ctrl+up/down */
  55.     int histlength; /* How long can the history be? */
  56.  
  57.     GList *suggests;    /* List of suggestions */
  58.     gboolean word;      /* Are the suggestions for only a word, or for the whole thing? */
  59.     gboolean always;    /* Should the list of suggestions show at all times, or only on tab-press? */
  60.     GntWidget *ddown;   /* The dropdown with the suggested list */
  61. };
  62.  
  63. struct _GntEntryClass
  64. {
  65.     GntWidgetClass parent;
  66.  
  67.     void (*text_changed)(GntEntry *entry);
  68.     void (*gnt_reserved1)(void);
  69.     void (*gnt_reserved2)(void);
  70.     void (*gnt_reserved3)(void);
  71.     void (*gnt_reserved4)(void);
  72. };
  73.  
  74. G_BEGIN_DECLS
  75.  
  76. GType gnt_entry_get_gtype(void);
  77.  
  78. GntWidget *gnt_entry_new(const char *text);
  79.  
  80. void gnt_entry_set_max(GntEntry *entry, int max);
  81.  
  82. void gnt_entry_set_text(GntEntry *entry, const char *text);
  83.  
  84. void gnt_entry_set_flag(GntEntry *entry, GntEntryFlag flag);
  85.  
  86. const char *gnt_entry_get_text(GntEntry *entry);
  87.  
  88. void gnt_entry_clear(GntEntry *entry);
  89.  
  90. void gnt_entry_set_masked(GntEntry *entry, gboolean set);
  91.  
  92. void gnt_entry_add_to_history(GntEntry *entry, const char *text);
  93.  
  94. void gnt_entry_set_history_length(GntEntry *entry, int num);
  95.  
  96. void gnt_entry_set_word_suggest(GntEntry *entry, gboolean word);
  97.  
  98. void gnt_entry_set_always_suggest(GntEntry *entry, gboolean always);
  99.  
  100. void gnt_entry_add_suggest(GntEntry *entry, const char *text);
  101.  
  102. void gnt_entry_remove_suggest(GntEntry *entry, const char *text);
  103.  
  104. G_END_DECLS
  105.  
  106. #endif /* GNT_ENTRY_H */
  107.